'person' is a pointer variable, containing the machine address of a Person object. Although the prospect of accessing an object via its address may be daunting at first, TC handles all the "dirty work" for you.
The members - instance variables and methods - of an object pointed to by a pointer variable are accessed with the '->' ("member of the object pointed to by") operator. Thus, 'person->print()' calls the member function print() of the Person class, which operates upon the instance variables of the object pointed to by person. (For simplicity we'll refer to the person pointer as simply "the person"). Using OOP terminology, we are sending a print message to the person. Note that if another variable 'guy' were declared pointing to another Person object, then 'guy->print()' would print the instance variables of this object rather than those of the person.
Although it is possible to access the instance variables of an object directly using the '->' notation, this is usually discouraged. Instead an object's instance variables should